Security News
cURL Project and Go Security Teams Reject CVSS as Broken
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
co-author-to-username
Advanced tools
Fetches the GitHub username for a co-author, if possible. 📇
Fetches the GitHub username for a co-author, if possible. 📇
npm i co-author-to-username
coAuthorToUsername
This package exports a coAuthorToUsername
function that can be used to fetch the corresponding GitHub user from a commit-to-co-author
-style co-author:
username
, that username is returned directlyemail
, the Octokit API is used to search for the first matching user on that exact emailimport { coAuthorToUsername } from "co-author-to-username";
await coAuthorToUsername({ email: "github@joshuakgoldberg.com" });
// Result: "JoshuaKGoldberg"
await coAuthorToUsername({ username: "JoshuaKGoldberg" });
// Result: "JoshuaKGoldberg"
If no corresponding username is found, the function resolves with undefined
.
coAuthorToUsername
OptionscoAuthorToUsername
may take in an optional options object with a fetcher
property.
fetcher
can be either an Octokit
or your own function to take in an email: string
and return a Promise<string | undefined>
for the equivalent email.
This can be useful if you want to use your own caching fetcher and/or stub out network requests in tests.
await coAuthorToUsername(
{ email: "mock-data@example.com" },
{ fetcher: async (email) => email.split("@")[0] },
);
// Result: "mock-data"
createCachingCoAuthorToUsername
As a convenience, this package also exports a createCachingCoAuthorToUsername
that can be used to create a version of coAuthorToUsername
that caches its email lookups.
It uses a CachedFactory
from the cached-factory
package to store results keyed by emails.
import { createCachingCoAuthorToUsername } from "co-author-to-username";
const cachingCoAuthorToUsername = createCachingCoAuthorToUsername();
await cachingCoAuthorToUsername({ email: "github@joshuakgoldberg.com" });
// Result: "JoshuaKGoldberg" (via a network request)
await cachingCoAuthorToUsername({ email: "github@joshuakgoldberg.com" });
// Result: "JoshuaKGoldberg" (cached)
Note that the cachingCoAuthorToUsername
functions created by createCachingCoAuthorToUsername
cannot be given options.
createCachingCoAuthorToUsername
must be given any options.
createCachingCoAuthorToUsername
OptionscreateCachingCoAuthorToUsername
may take in an optional options object with a fetcher
property.
It works the same and serves similar purposes to coAuthorToUsername
's fetcher
.
const cachingCoAuthorToUsername = createCachingCoAuthorToUsername({
fetcher: async (email) => email.split("@")[0],
});
await cachingCoAuthorToUsername({ email: "mock-data@example.com" });
// Result: "mock-data" (via the fetcher option)
await cachingCoAuthorToUsername({ email: "mock-data@example.com" });
// Result: "mock-data" (cached)
Josh Goldberg 🔧 🐛 💻 🚧 👀 📖 🚇 |
💙 This package was templated with create-typescript-app.
FAQs
Fetches the GitHub username for a co-author, if possible. 📇
The npm package co-author-to-username receives a total of 1,332 weekly downloads. As such, co-author-to-username popularity was classified as popular.
We found that co-author-to-username demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.